#ifndef BDSWORKMAIN_H
#define BDSWORKMAIN_H


#include <QWidget>
#include <config.h>

#include <QDateTime>
#include <cstdio>
#include <QFile>

#include <QWebEngineView>
#include <QtWidgets>



//引入全局变量
extern QSerialPort *serial;
extern QSerialPort *serial_send;
extern QString filepath;
extern network_confdef netconf;

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_configbutton_clicked();

    void on_startbutton_clicked();

    void rcvserialSLOTS(void);

    void rcvtcpSLOTS(void);

    // 将字节数组转换为经纬度坐标
    QPointF decodeLocationData(const QByteArray &data);

    QByteArray encodeLocationData(double longitude, double latitude);

    void addMapMarker(double lon, double lat);

    //界面优化函数
    //将状态转化为开始接收和暂停接收
    void to_sta_rcv(void);
    void to_sta_stop(void);



private:
    Ui::Widget *ui;

    //定义串口配置映射表
    QMap<QString, QSerialPort::BaudRate> baudrateMap;
    QMap<QString, QSerialPort::StopBits> stopbitMap;
    QMap<QString, QSerialPort::DataBits> databitMap;
    QMap<QString, QSerialPort::Parity> parityMap;

    //网口定义
    QTcpSocket *socket;

    QUdpSocket *udpSocket;

    int humanclose_flag;
    QByteArray currentdata;
};

#endif // BDSWORKMAIN_H
